Intelligent networked devices like smart phones present new challenges when trying to understand end user experiences and application behavior. The intelligent devices use a new class of applications that leverage distributed code, local databases, and intermittent network communications. The use of these applications on intelligent phones and the use of “fat applications” on personal computers have caused an explosion in application complexity.
The majority of occasional use applications previously leveraged web browser technology. The web browser was responsible for rendering content and allowing end user interactivity. However, the new distributed applications are downloaded and installed on demand, instead of being dynamically referenced by Universal Resource Language (URL) calls from a web browser.
The data and state in distributed applications is persistent on the client, and network connectivity varies based on mode and location. Because these types of applications are not driven through a browser the rendering, painting, displays, etc. on the screen of the device are often performed by proprietary code in the application that is not readily viewable by monitoring devices.
Monitoring systems are used for monitoring and understanding user experiences during web sessions. The monitoring systems typically use extensive application instrumentation that logs key user session events or actions and logs the metadata (performance, etc) of the events. This style of logging might be performed by a client device, the server, or both. However, there are significant challenges bringing together dispersed log files from the client device and the server. The challenges from a physics perspective include moving the different log files into one repository, and the challenge from a replay perspective includes accurately stitching together a user experience from the log files obtained across multiple tiers.
Correctly evaluating a user experience during an application session depends on understanding what the user actually saw on the screen and what actions the user took while particular information was displayed on the screen. Correlating and collecting the different pieces of data associated with the application session still may not clearly illustrate all of the issues associated with the user experience. Distributed applications increase the difficulty of accurately monitoring and understanding web sessions since there is less access to the internal workings of the application software. Distributed applications are also often loaded on handheld wireless devices that have limited processing capabilities.